package medium

import (
	. "GoLeetcode/common"
)

/*
时间复杂度:O(N)
空间复杂度:O(1)

最多将1个0转换为1,等效于窗口内最多包含1个0(一般这种最多包含几个0的题,用一个变量count记录窗口内的所有0的个数)
*/

func findMaxConsecutiveOnes(nums []int) int {
	left, right := 0, 0
	ans := 0
	count := 0
	for right < len(nums) {
		if nums[right] == 0 {
			count++
		}
		for count > 1 {
			if nums[left] == 0 {
				count--
			}
			left++
		}
		ans = Max(ans, right-left+1)
		right++
	}
	return ans
}
